}
static gboolean
-do_preview (GtkPrintOperation *op,
+preview_cb (GtkPrintOperation *op,
GtkPrintOperationPreview *preview,
GtkPrintContext *context,
GtkWindow *parent,
}
static void
-do_print (GtkAction *action)
+do_print_or_preview (GtkAction *action, GtkPrintOperationAction print_action)
{
GtkPrintOperation *print;
PrintData *print_data;
g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), print_data);
g_signal_connect (print, "create_custom_widget", G_CALLBACK (create_custom_widget), print_data);
g_signal_connect (print, "custom_widget_apply", G_CALLBACK (custom_widget_apply), print_data);
- g_signal_connect (print, "preview", G_CALLBACK (do_preview), print_data);
+ g_signal_connect (print, "preview", G_CALLBACK (preview_cb), print_data);
g_signal_connect (print, "done", G_CALLBACK (print_done), print_data);
#if 0
gtk_print_operation_set_allow_async (print, TRUE);
#endif
- gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (main_window), NULL);
+ gtk_print_operation_run (print, print_action, GTK_WINDOW (main_window), NULL);
g_object_unref (print);
}
+static void
+do_print (GtkAction *action)
+{
+ do_print_or_preview (action, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG);
+}
+
+static void
+do_preview (GtkAction *action)
+{
+ do_print_or_preview (action, GTK_PRINT_OPERATION_ACTION_PREVIEW);
+}
+
static void
do_about (GtkAction *action)
{
"Page _Setup", NULL, /* label, accelerator */
"Set up the page", /* tooltip */
G_CALLBACK (do_page_setup) },
+ { "Preview", NULL, /* name, stock id */
+ "Print Preview", NULL, /* label, accelerator */
+ "Preview the printed document", /* tooltip */
+ G_CALLBACK (do_preview) },
{ "Print", GTK_STOCK_PRINT, /* name, stock id */
NULL, NULL, /* label, accelerator */
"Print the document", /* tooltip */
- G_CALLBACK (do_print) },
+ G_CALLBACK (do_print) }
};
static guint n_entries = G_N_ELEMENTS (entries);
" <menuitem action='Save'/>"
" <menuitem action='SaveAs'/>"
" <menuitem action='PageSetup'/>"
+" <menuitem action='Preview'/>"
" <menuitem action='Print'/>"
" <separator/>"
" <menuitem action='Quit'/>"